Repository navigation
Conversation
roborev: Combined Review (
|
ce8bebc to
5d00bcb
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
d4efb4b to
be1889b
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
f9400d9 to
41e245c
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
2317135 to
9a1b35d
Compare
roborev: Combined Review (
|
Directory kept its Filters button while Messages and Files moved to Filter. The shared command needs to reach each workspace's button so keyboard and command palette users can open Directory filters again.
An older list response could restore a cancelled batch to staged or deleting. If the next refresh failed, the table and sidebar kept that stale status. Keep the successful cancellation authoritative while that list finishes.
The Files changes carried older Settings code over the shared status and People profile refreshes. Restore the parent layer's reload behavior so saved profiles, Contacts status, and failed index refreshes remain accurate. People writes keep the revision returned with the profile they display. Generated with Codex (gpt-6.1-sol)
Returning to Sources can leave an older connections snapshot in flight while Sync now finishes. That snapshot restored stale failure details and last-good timestamps after the idle controller had stopped polling. Cancel the competing list refresh through its existing request controller so the completed sync remains visible in both the row and account panel.
A connections refresh can start while contacts sync is still waiting and return an old failure after sync completes. Terminal syncs stop polling, so that response can leave the row and account panel stale indefinitely. Cancel the competing request when sync finishes so refreshes started during the sync also preserve its reconciled result.
…redesign-5-files # Conflicts: # web/src/lib/components/settings/SettingsWorkspace.svelte # web/src/lib/components/settings/SettingsWorkspace.test.ts
Renaming a saved view or saving its description could leave the editor busy after the save succeeded. A slow staged-deletion request held up the shared refresh even though saved views had already loaded. Saved-view edits need to wait only for their own refreshed list.
The Files branch lost Past runs coverage while archive navigation behavior stayed the same. Restore those checks so history regressions remain visible. Duplicate cases and unrealistic fetch behavior obscured what the remaining tests protected. Keep each scenario focused on distinct, reachable behavior.
Most source-label rows supply only the type and display name. Mark the mailbox arguments optional so the shared callback accepts both fixture shapes during TypeScript validation. Generated with Codex
f11dcee to
ba82c51
Compare
roborev: Combined Review (
|
Batches from different mailboxes can share a date and message count. Show their accounts in the list so users can distinguish them without opening each panel or fetching details for every row.
Repeated list scenarios increased maintenance without protecting another behavior. Realistic API fixtures and independent consent and row-count checks make failures point to reachable regressions.
roborev: Combined Review (
|
# Conflicts: # api/openapi.yaml # docs/api-server.md # internal/api/carddav.go # internal/api/openapi.go # pkg/client/openapi.yaml # web/src/lib/components/settings/CardDAVOperations.svelte # web/src/lib/components/sources/SourcesWorkspace.svelte # web/src/lib/components/sources/SourcesWorkspace.test.ts
roborev: Combined Review (
|
Scheduled contacts runs can start while Sources stays open. Watching only active runs left these accounts showing an old result and last good sync until the user refreshed the page. The scheduler can queue or start work before an active run exists. Those states need to stay visible, while a queued retry must preserve the previous failure so the user can still diagnose it.
roborev: Combined Review (
|
A delayed Connections response could restore an old failure while a manual sync was reconciling, or cancel the status read that decides whether Sync now can be enabled. Summaries need the same ordering guarantees as the controller's own reads. The focus regression used the old Deletions label, so it failed before reaching browser history navigation. The duplicate mailbox example adds no coverage beyond the existing file-row test.
roborev: Combined Review (
|
A failed status read kept Sync now disabled even after Sources received current connection status. Accepting that summary must clear the stale request error so the account can recover without another status request.
roborev: Combined Review (
|
The status response now requires scheduler_running, so the type check rejected the idle fixture once a test passed it straight to refreshFromConnection.
roborev: Combined Review (
|
|
Risk accepted: when a sync request is accepted but no new run shows up before polling stops, the "not observed" notice and Refresh button sit behind the open source panel. Example: you click Sync in the panel, the server says OK, but the run never appears. The panel goes back to showing the last result, and the explanation is on the page underneath it. Closing the panel shows it. This only happens when the server accepts a sync and then never starts it, which is rare. Moving the notice into the panel means threading per-source polling state into it, which belongs with a later panel cleanup rather than this PR. |
Files now uses the Messages toolbar, one Filter menu, and a viewer with Add to task. Sources keeps mail and Contacts sync independent, shows schedules and runs, and opens repair Settings on the selected account. This slice extends the toolbar from #1579. Before, Files split its filters, Contacts lived in Settings, and staged deletions showed manifest IDs.
Staged deletions lists each batch by date, message count, and account. The Messages selection bar opens a review dialog before staging;
msgvault delete-stagedruns deletion. The sidebar shows Staged deletions while a batch is pending, running, or failed.The deletion list API now returns each batch's account. Screenshots use synthetic data in dark mode at 1280×720. The People list and page build on this in #1611.
Refs #1552, slice 5 (Files, Sources, and Staged deletions)
Stacks on #1579